Electronic systems, like data processing systems, electronic devices, mobile communication terminals and the like, use task scheduling for controlling the order and resource access time of tasks to be executed within the system. Task scheduling is of particular relevance for the system in case tasks to be executed within the system are to concurrently use the same system resources, e.g., processor time, communication bandwidth, memory and the like. In this case, the task scheduling decides which of the tasks competing for the same system resources are executed with a higher priority than other tasks, i.e., to which tasks a longer resource access time is allocated.
In known mobile communication systems, a static look-up table comprising a fixed priority for each task to be executed in the system is used for the task scheduling. For example, in case two tasks are to concurrently use the same system resources, the task to which the higher priority is allocated in the static look-up table is executed before the other task. However, since the priorities provided in the static look-up table are fixed values (i.e., assigned as factory default settings), the same tasks always have higher priorities than other tasks and are therefore executed more preferentially than the other tasks. Moreover, the fixed priority distribution included in the static look-up table is provided such that a stable system performance in all common system situations is guaranteed, i.e., no system starvation occurs. However, task scheduling based on a static look-up table provides no flexibility regarding task priority values so that no dynamic task scheduling can be provided.
Other known systems use task scheduling algorithms, e.g., Round-Robin, Fair Queue, Weighted Fair Queue, Priority Inversion, etc., for task scheduling. Such task scheduling algorithms have the aim of improving the average task execution performance of the system. However, the known task scheduling algorithms are not flexible enough to be adapted to more seldom occurring system situations. For example, in case of system failure or deterioration of system performance, the task scheduling aim is to keep the system operational and not to improve the average task execution performance within the system. Thus, depending on the status of the system, it may be desired to execute certain tasks with a higher priority than other tasks. However, the known task scheduling algorithms are not adapted to dynamically and flexibly change priorities allocated to tasks.
Document US 2009/0044060 A1 discloses a method for supervising task-based data processing in a real time operation system. Task identifiers stored in a log memory of the system provide a task history pattern of scheduled tasks. Based on the task history pattern, failures to appear in the system can be detected. However, only past task scheduling logs are considered for the failure prediction so that the task-based data processing lacks flexibility.
Thus, the problem of providing flexible and dynamic task scheduling within a system arises.